#!/bin/bash

# 检查是否以root权限运行
if [[ $EUID -ne 0 ]]; then
   echo "此脚本需要root权限才能修改/sys/class/net/下的文件。请使用sudo运行。" 
   exit 1
fi

# 定义网络接口名称和队列范围
INTERFACE="eth0"
START_QUEUE=0
END_QUEUE=63
VALUE=0

# 获取接口实际队列数量（可选，用于更精确的处理）
# 实际队列数可能少于64，这里我们仍按0-63循环，不存在的队列会报错但不影响存在的。
# 如果需要精确处理，可以先检查目录是否存在。
# NUM_QUEUES=$(ls /sys/class/net/$INTERFACE/queues/rx-* | wc -l)
# END_QUEUE=$((NUM_QUEUES - 1))

echo "正在为接口 $INTERFACE 的接收队列 $START_QUEUE 到 $END_QUEUE 设置 rps_cpus 为 $VALUE..."

# 循环遍历队列并设置 rps_cpus
for ((i=START_QUEUE; i<=END_QUEUE; i++))
do
    FILE_PATH="/sys/class/net/$INTERFACE/queues/rx-$i/rps_cpus"
    if [ -w "$FILE_PATH" ]; then
        echo $VALUE > "$FILE_PATH"
        if [ $? -eq 0 ]; then
            echo "成功设置 $FILE_PATH"
        else
            echo "写入失败: $FILE_PATH"
        fi
    else
        echo "文件不存在或无写权限 (可能队列 rx-$i 不存在): $FILE_PATH"
    fi
done

echo "批量设置完成。"





